Search-based refactoring: an empirical study
نویسندگان
چکیده
Object-oriented systems that undergo repeated addition of functionality commonly suffer a loss of quality in their underlying design. This problem must often be remedied in a costly refactoring phase before further maintenance programming can take place. Recently search-based approaches to automating the task of software refactoring, based on the concept of treating object-oriented design as a combinatorial optimisation problem, have been proposed. However, because search-based refactoring is a novel approach it has yet to be established which search techniques are most suitable for the task. In this article we report the results of an empirical comparison of simulated annealing, genetic algorithms and multiple ascent hill-climbing in search-based refactoring. A prototype automated refactoring tool is employed, capable of making radical changes to the design of an existing program in order that it conform more closely to a contemporary quality model. Results show multiple-ascent hill climbing to outperform both simulated annealing and genetic algorithm over a set of five input programs. Copyright c © 2000 John Wiley & Sons, Ltd.
منابع مشابه
Search-Based Parallel Refactoring Using Population-Based Direct Approaches
Automated software refactoring is known to be one of the "hard" combinatorial optimization problems of the search-based software engineering field. The difficulty is mainly due to candidate solution representation, objective function description and necessity of functional behavior preservation of software. The problem is formulated as a combinatorial optimization problem whose objective functi...
متن کاملIdentifying refactoring opportunities in object-oriented code: A systematic literature review
Context: Identifying refactoring opportunities in object-oriented code is an important stage that precedes the actual refactoring process. Several techniques have been proposed in the literature to identify opportunities for various refactoring activities. Objective: This paper provides a systematic literature review of existing studies identifying opportunities for code refactoring activities....
متن کاملRefactoring trends across N versions of N Java open source systems: an empirical study
In the past few years, refactoring has emerged as an important consideration in the maintenance and evolution of software. Yet very little empirical evidence exists to support the claim about whether developers actively undertake refactoring, or whether as Fowler suggests that the benefits of doing refactoring are not short-term but too ‘long-term’ [8]. In this paper, we describe an empirical s...
متن کاملAn Empirical Study on Refactoring Activity
This paper reports an empirical study on refactoring activity in three Java software systems. We investigated some questions on refactoring activity, to confirm or disagree on conclusions that have been drawn from previous empirical studies. Unlike previous empirical studies, our study found that it is not always true that there are more refactoring activities before major project release date ...
متن کاملSearch-based and goal-oriented refactoring using unfolding of graph transformation systems
To improve automation and traceability of search-based refactoring, in this thesis we propose a formulation of using graph transformation, where graphs represent object-oriented software architectures at the class level and rules describe refactoring operations. This formalisation allows us to make use of partial order semantics and an associated analysis technique, the approximated unfolding o...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Journal of Software Maintenance
دوره 20 شماره
صفحات -
تاریخ انتشار 2008